home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Game-Power
/
Amiga Game-Power.iso
/
pd mix ii
/
timer
/
imandelvroom
/
readme
< prev
Wrap
Text File
|
1994-05-20
|
5KB
|
79 lines
Ever wonder what evil lurks in the blackened depths of the inner circle of the
Mandelbrot set? Long ago, when Robert French came out with the first widely
distributed C language Mandelbrot set generator for the Amiga, I attempted to
hack it to show what was going on in the inner reaches with a set of contours
just like the outer Mandelbrot. I failed. My reasoning went something like
this: The Mandelbrot fractal boundary is considered to be "stable". The points
along the boundary are not migrating in the accumulated formulary sum. Points
outside the boundary flee to infinity. Points inside the boundary fall to
various limit cycles or to certain loci in the inner map, such as x=0,y=0.
The destination points of the flight are known as "strange attractors".
The outer infinite destination is a strange attractor at infinity. The one
at the origin is perhaps easy to accept - the iterative product of real
fractions, at least, ought to go to zero as a limit. The other points are
elusive rascals to locate if one has no prior hueristic knowledge of likely
sites for loci. The original Amiga Mand.c program, as improved by R. J. Mical
had a small section of inescapable code (you had to reboot to get out of it)
called the "Analyzer" with which you could, after executing "SA filename" and
"L filename" followed by "A", examine the orbits of the Mandelbrot sum points
on the fly. By leaning on the left mouse button and patrolling with the
cursor, one could find the strange attractors (I think they're the places
where the knot of points condenses into a minimum number of clusters of
minimal diameter - one in the main body, three in the lobes at the top and
bottom, four in the first lobe on the x axis, five for some intermediate lobes,
etc.).
Well, anyway, back to the matter at hand. The cause of my failure was rooted
in the following reasoning: If the fleeing points are advancing toward what is
nominally considered a bye-bye level of absolute radial magnitude 2.0 then we
could suppose that points bound to collapse toward the inside may be considered
doomed when they fall to absolute magnitude 0.5, right? So I set up a little
if statement to trap this condition. Much to my surprise and horror, I found
that many of the points destined to escape to the *outside* did so by orbiting
through radial magnitudes 0.5 and lower. In fact, setting the separator as
low as 0.03125 left zillions of points improperly sorted. I was forced to
conclude that there was no practical lower value that would sort the inwardly
collapsing points. And with that, I went on to other business and left the
strange attractors to the math experts.
Recently, there was Yet Another Mandelbrot Program, titled MandelVroom, posted
to the net by one Kevin Clague at Amdahl. He added a Motorola floating point
section that he claimed would give much improved resolution over the previously
available Mandelbrots, though I haven't checked that out in detail yet. One
thing that Kevin did make a note about in his code is the "Ring Detector" for
ponderous points in the inner lobes of the Mandelbrot interior exo-set. This
code detects non-migrating orbits for rotating points and escapes to more
productive duty, setting the cell count to max on the way out. However,
another thing it is capable of doing, so it turns out, is acting as a strange
attractor contour generator of sorts. It doesn't do a perfect job of this,
(in fact, I am wondering why it works at all) in that some places where there
are inflections in the contour, (See Note 1. below) it just gets "noisy".
Nonetheless, the contours produced may be of interest to some of you. And
why not - the change to the source involves commenting out only three lines of
assembly code. The results will not hold your attention as well as does the
Mandelbrot set, but (Yawn) it's something to know about... In mand.c I put
semicolons at the beginning of the lines as shown below:
At line ~229 in mand.c find the ring detector loop and add (;)'s
lloop1
cmp.l (a0)+,d4
bne skipit
cmp.l (a1)+,d5
bne nextl
; move.w _MaxCount,d0
; ext.l d0
; move.l d0,k(a5)
; move.l #0,l(a5)
bra out
If you make the patch, remember to select FFP in the Generator item submenu
after opening the EDIT menu. For those with no Manx, I'll post a .uue that
has this done for you, (along with an optimized color register set) in a
following article.
-----------------------------------------------------------------------------
Note 1: See contour map, Fig 33 p.60, "The Beauty of Fractals" by
H.-O. Peitgen - P.H. Richter, Springer-Verlag (Berlin, New York,...)
-----------------------------------------------------------------------------
Howard Hull